/**
 * 编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀，返回空字符串 ""。

 

示例 1：

输入：strs = ["flower","flow","flight"]
输出："fl"
示例 2：

输入：strs = ["dog","racecar","car"]
输出：""
解释：输入不存在公共前缀。
 

提示：

0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成

 */

export function longestCommonPrefix(strs: string[]): string {
    const strsArr = strs.map(str => {
        return str.split('');
    });
    let firstArr: (string | undefined)[] = [];
    let okInWhile = true;
    let maxLength = '';
    while(okInWhile) {
        firstArr = strsArr.map(strArr => {
            return strArr.shift();
        });
        okInWhile = firstArr.every(Boolean);
        if (firstArr.reduce((pre, curr) => {
            if (pre === curr) {
                return curr;
            }
            return '';
        })) {
            maxLength += firstArr[0];
        } else {
            okInWhile = false;
        }
    }
    return maxLength;
};